package com.carrental.search.service;

/**
 * 数据同步服务接口
 * 提供车辆和门店数据的同步功能
 */
public interface DataSyncService {

    /**
     * 全量同步车辆数据
     * 从车辆微服务获取全部车辆数据，并更新到Elasticsearch
     *
     * @return 同步的数据条数
     */
    int syncAllVehicles();

    /**
     * 增量同步车辆数据
     * 从车辆微服务获取最近更新的车辆数据，并更新到Elasticsearch
     *
     * @param lastSyncTime 上次同步时间（时间戳）
     * @return 同步的数据条数
     */
    int syncIncrementalVehicles(Long lastSyncTime);

    /**
     * 同步单个车辆数据
     * 从车辆微服务获取指定车辆数据，并更新到Elasticsearch
     *
     * @param vehicleId 车辆ID
     * @return 是否同步成功
     */
    boolean syncVehicle(Long vehicleId);

    /**
     * 删除车辆索引数据
     *
     * @param vehicleId 车辆ID
     * @return 是否删除成功
     */
    boolean deleteVehicle(Long vehicleId);

    /**
     * 同步门店位置数据
     * 从门店微服务获取门店位置数据，用于地理位置搜索
     *
     * @return 同步的数据条数
     */
    int syncStoreLocations();
} 